# 能把方法当做属性一样调用
# 私有属性  __age
class Person():
    def __init__(self):
        self.__age = 18

    # 定义两个接口
    def getAge(self):
        return self.__age

    def setAge(self,value): # 30 "30"
        if str(value).isdigit():  # 如果用户输入的是数字允许修改
            self.__age = value
        else:
            print("格式不对")

    def delAge(self):
        del self.__age
    # fget:对象.属性自动调用 fset:对象.属性=值自动调用 fdel:del 对象.属性自动调用 doc:类名.属性__doc__自动调用
    pro = property(getAge,setAge,delAge,"这是一个私有属性__age")
p = Person()
# p.age = 30
# print(p.age)
# p.setAge(30)
# print(p.getAge())

p.pro = 30  # 规避脏数据并且像调用属性的方式去调用
print(p.pro)
# del p.pro
# print(p.pro)
print(Person.pro.__doc__) # Person()就是一个对象